SageMaker Unified Studio の JumpStart で Llama 3.3 70B をデプロイしてみる
こんにちは、森田です。
以下のアップデートで Amazon SageMaker JumpStart で Llama 3.3 70B が利用可能となりました。
本記事では、SageMaker JumpStart で Llama 3.3 70B をデプロイしてみます。
また、JumpStart については、SageMaker Unified Studio から行ってみます。
やってみた
前提条件
SageMaker Unified Studio のドメインは作成済みとします。
プロジェクトの作成
Unified Studio 内でプロジェクトを作成します。
今回はモデル開発を行うため、プロファイルに「Data analytics and AI-ML model development」を選択して、作成を行います。
以下のようにステータスがアクティブ
になるまで待機します。
JumpStart からモデルをデプロイ
作成したプロジェクトを選択して、Jumpstart models
を開きます。
Llama 3.3 70B
を選択します。
右上の「Depoly」をクリックします。
今回はインスタンスタイプは、ml.p4d.24xlarge
を選択して「Deploy」をクリックします。
ちなみに、当初は、ml.g5.48xlarge
を選択して「Deploy」してましたが、以下のようにエラーが発生しました。
Deploy後は、Status が InService になるまで待機します。
エンドポイントからのモデルの呼び出し
「Test inference」をクリックすると、モデル呼び出し用のサンプルコードが用意されています。
今回は JupyterLab を使ってモデル呼び出しを行います。
サンプルコードが記載されたノートブックが開きます。
注意点として、デフォルトでインストールされているsagemaker
のままではバージョンが対応していないため、以下のエラーが発生します。
KeyError: "Unable to find model manifest for
'meta-textgeneration-llama-3-3-70b-instruct' with version '1.2.0' compatible with your SageMaker version ('2.227.0').
Consider upgrading your SageMaker library to at least version '2.232.1'
so you can use version '1.2.0' of 'meta-textgeneration-llama-3-3-70b-instruct'."
一度以下のコマンドを実行してバージョンを最新化します。
!pip install -U sagemaker
バージョン変更後、以下のコードを実行します。
from sagemaker.predictor import retrieve_default
endpoint_name = "エンドポイント名"
predictor = retrieve_default(endpoint_name)
payload = {
"inputs": "<|begin_of_text|><|start_header_id|>user<|end_header_id|>\n\nあなたのお名前は何ですか?<|eot_id|><|start_header_id|>assistant<|end_header_id|>\n\n",
"parameters": {
"max_new_tokens": 256,
"top_p": 0.9,
"temperature": 0.6
}
}
response = predictor.predict(payload)
print(response)
{'generated_text': '私はAIです。名前は「LLaMA」です。Llamaは、Large Language Model Meta AIの略です。'}
問題なく動作していますね!
さいごに
SageMaker Unified Studio は、従来の JumpStart とほとんど同じ感覚で使えました。
また、作成されたモデルをすぐに試すためのTest inference
も用意されていて、開発体験が良いです。
このモデルを使ってBedrockにもインポートできそうな気がするので、またの機会に試してみたいと思います。